#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
//class B { public: int b; };
//class C1 : public B { public: int c1; };
//class C2 : public B { public: int c2; };
//class D : public C1, public C2 { public: int d; };
//int main()
//{
//	D d;
//	cout<<sizeof(d) << endl;
//
//	return 0;
//}


//class A
//{
//public:
//	void test(float a)
//	{
//		cout << a;
//	}
//};
//class B :public A
//{
//public:
//	void test(int b)
//	{
//		cout << b;
//	}
//};
//int main()
//{
//	A* a = new A;
//	B* b = new B;
//	a = b;
//	a->test(1.1);
//}

//class A
//{
//public:
//    virtual void f()
//    {
//        cout << "A::f()" << endl;
//    }
//};
//
//class B : public A
//{
//public:
//    virtual void f()
//    {
//        cout << "B::f()" << endl;
//    }
//};
//
//int main()
//{
//    B b;
//    b.f();
//}

//class A
//{
//public:
//   A() 
//   :m_iVal(0)
//  {
//      test(); 
//  }
//  virtual void func() { std::cout << m_iVal << " "; }
//  void test() { func(); }
//public:
//  int m_iVal;
//};
//class B : public A
//{
//public:
//    B() { test(); }
//    virtual void func()
//    {
//        ++m_iVal;
//        std::cout << m_iVal << " ";
//    }
//};
//
//int main()
//{
//    A* p = new B;
//    p->test();
//    return 0;
//}


class Base
{
public:
	virtual void func1()
	{
		cout << "func1()" << endl;
	}
};
class Dierive :public Base
{
public:
	virtual void func1()
	{
		cout << "func1()" << endl;
	}
};
int main()
{
	Dierive d;

	return 0;
}

